package com.sayimo.maker.mall.orders.dao.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.sayimo.framework.database.mybatis.AbstractMybatisBaseDao;
import com.sayimo.framework.exception.DaoException;
import com.sayimo.maker.mall.orders.dao.OrderReturnRefDao;
import com.sayimo.maker.mall.orders.vo.OrderReturnRef;



/**
 * @Project: schollmallsuper2.0
 * @ClassName: OrderReturnRefDaoImpl
 * @Description: 商品退换货中间表
 * @author:	chenpy
 * @date:	2016年6月12日
 * @version 1.0.0
 */
@Repository(value="orderReturnRefDao")
public class OrderReturnRefDaoImpl extends AbstractMybatisBaseDao<OrderReturnRef> implements OrderReturnRefDao{

	/** 
	  * @package com.sayimo.maker.mall.orders.dao
	  * @author chenpy
	  * @Title:  
	  * @Description: 添加退换货申请
	  * @param 
	  * @throws 
	  * @return int
	  * @date 2016年6月14日
	  */ 
	public int insertOrderReturnRef(OrderReturnRef orderReturnRef) throws DaoException {
		return mybatisInterfaceBaseDao.insert("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.insertOrderReturnRef", orderReturnRef);
	}

	/** 
	 * @package com.sayimo.maker.mall.orders.dao
	 * @author chenpy
	 * @Title:  getOrderReturnRefById
	 * @Description: 按ID查询退换货订单
	 * @param 
	 * @throws 
	 * @return int
	 * @date 2016年6月17日
	 */ 
	public OrderReturnRef getOrderReturnRefById(Integer id) throws DaoException {
		return mybatisInterfaceBaseDao.get("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.selectReturnRefById", id);
	}

	/** 
	 * @package com.sayimo.maker.mall.orders.dao
	 * @author chenpy
	 * @Title:  updateOrderReturnRef
	 * @Description: 修改托换货订单信息
	 * @param 
	 * @throws 
	 * @return int
	 * @date 2016年6月17日
	 */
	public int updateOrderReturnRef(OrderReturnRef orderReturnRef) throws DaoException {
		return mybatisInterfaceBaseDao.update("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.updateOrderReturnRef", orderReturnRef);
	}

	/** 
	 * @package com.sayimo.maker.mall.orders.dao
	 * @author 李强
	 * @Title:  getReturnOrderList
	 * @Description: 退换货订单列表
	 * @param 
	 * @throws 
	 * @return List
	 * @date 2016年6月21日
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public List getReturnOrderList(Integer customerId,Integer status,Integer providerId,Integer pageNow,Integer pageSize) throws DaoException {
		Map map=new HashMap();
		map.put("customerId", customerId);
		map.put("status", status);
		map.put("providerId", providerId);
		map.put("pageNow", pageNow);
		map.put("pageSize", pageSize);
		return mybatisInterfaceBaseDao.queryObject("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.getReturnOrderList", map);
	}
	/** 
	 * @package com.sayimo.maker.mall.orders.dao
	 * @author 李强
	 * @Title:  getReturnGoodsList
	 * @Description: 根据商品Id查询退换货商品信息
	 * @param 
	 * @throws 
	 * @return List
	 * @date 2016年6月21日
	 */
	@SuppressWarnings({ "rawtypes"})
	public List getReturnGoodsList(Integer goodsId) throws DaoException {
		return mybatisInterfaceBaseDao.queryObject("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.getReturnGoodsList", goodsId);
	}
	/** 
	 * @package com.sayimo.maker.mall.orders.dao
	 * @author 李强
	 * @Title:  getReturnOrderId
	 * @Description: 退换货订单详情
	 * @param 
	 * @throws 
	 * @return Map
	 * @date 2016年6月22日
	 */
	@SuppressWarnings({ "rawtypes"})
	public Map getReturnOrderId(Integer returnRefId) throws DaoException {
		return mybatisInterfaceBaseDao.queryMap("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.getReturnOrderId", "returnRefIdCnt", returnRefId);
	}

	/** 
	 * @package com.sayimo.maker.mall.orders.dao
	 * @author 李强
	 * @Title:  getReturnOrderId
	 * @Description: 查询原订单收货人信息
	 * @param 
	 * @throws 
	 * @return Map
	 * @date 2016年6月22日
	 */
	@SuppressWarnings({ "rawtypes"})
	public Map getOrderReceivingReturnRefId(Integer returnRefId)
			throws DaoException {
		return mybatisInterfaceBaseDao.queryMap("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.getOrderReceivingReturnRefId", "returnRefIdCnt", returnRefId);
	}

	/** 
	* @Title: getOrderReturnRefByIdAndProviderId
	* @author wangyang 
	* @Description: 按退换货表ID和供应商ID查询退换货订单
	* @param returnRefId
	* @param providerId
	* @return OrderReturnRef
	* @date 2016年7月15日
	* @throws 
	*/
	@Override
	public OrderReturnRef getOrderReturnRefByIdAndProviderId(
			Integer returnRefId, Integer providerId) throws DaoException {
		Map map=new HashMap();
		map.put("returnRefId", returnRefId);
		map.put("providerId", providerId);
		return mybatisInterfaceBaseDao.get("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.selectReturnRefByIdAndProviderId", map);
	}

	/**
	 * 
	* @Title: queryCountreturnRefById 
	* @Author: 田超
	* @Date:日期：2016年7月18日  时间：下午3:06:27
	* @Description: 验证退换货订单
	* @param paramMap
	* @return
	* @throws DaoException
	* @return Integer
	* @Version 1.0.0
	 */
	public Integer queryCountreturnRefById(Map<String, Object> paramMap) throws DaoException {
		return this.mybatisInterfaceBaseDao.queryCount("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.queryCountreturnRefById",paramMap);
	}
	
	/**
	* @Title: updateTimeComparison 
	* @Description: 时间戳对比
	* @param 
	* @throws DaoException
	* @return Map
	 */
	public Map updateTimeComparison() throws DaoException {
		
		return this.mybatisInterfaceBaseDao.queryMap("com.sayimo.maker.mall.orders.dao.OrderReturnRefDao.updateTimeComparison", "updateTime");
	}

}
